'''
   ATM    功能列表
   1.登录 和   注册
   2.查询余额
   3.取钱
   4.存钱
   5.退出
   6.界面

'''
#   定义一张用户表   用于存储用户信息
user_list=[
    {'name':'chenyuqi','account':'123','currency':10000},
    {'name':'liyifeng','account':'145','currency':8888},
    {'name':'zhangwuji','account':'156','currency':6666}
]
#   定义一张管理员表  用于登录和注册
manager_list=[
    {'name':'admin','password':'00'}
]
#管理员添加   通过管理员  帮助客户进行存钱  取钱  查询余额
def manager_add(m_name,password):
    manager = {}
    manager['name']= m_name
    manager['password']= password
    manager_list.append(manager)
#查看管理员信息展示已经注册过的管理员信息，然后列表中获取信息输出
#  定义查看用户列表函数   此函数用于展示注册过的用户  并提示管理员进行操作
def show_user():
    # print('*' * 34)
    # print('*' * 10, end='')
    # print('用户信息一览表', end='')
    # print('*' * 10)
    print('*' * 34)
    print('|{0:<3}|{1:<12}|{2:<8}|{3:<6}|'.format('id','user_name','credit','count'))
    print('*' * 34)
    if  len(user_list)== '0':
        print('尚未有用户')
    for i,user_dict in enumerate(user_list):
        print('|{0:<3}|{1:<12}|{2:<8}|{3:<6}|'.format(i+1,user_dict['name'],user_dict['account'],user_dict['currency']))
    print('*' * 34)
#测试显示用户
# show_user()
#    显示已注册的管理员  以防重复操作
def show_mananger():
    if len(manager_list)==0:
        print('管理员信息为空')
    print('已注册管理员信息')
    print('*'*27)
    print('|{0:<5}|{1:<8}|{2:<10}|'.format('id', 'user', 'password'))
    print('*'*27)
    for i,manager_dict in enumerate(manager_list):
        print('|{0:<5}|{1:<8}|{2:<10}|'.format(i+1,manager_dict['name'],manager_dict['password']))
    print('*'*27)
#测试管理员添加是否成功
# manager_add('dan','111')
#管理员注册函数
def  m_register():
    print('*' * 32)
    print('*'*6,end='')
    print('欢迎来到注册信息界面',end='')
    print('*' * 6)
    print('*' * 32)
    name1=input('请输入用户名：')
    password1=input('请输入密码：')
    manager_add(name1,password1)
    print('注册成功！！！')
    show_mananger()
    loginIn()
#管理员删除函数
def del_m():
    if len(manager_list) == 0:
        print('尚未添加管理员信息！请先注册！')
        m_register()
    else:
        show_mananger()
        k = input('请输入要删除的管理员id:')
        m_id = int(k)
        manager_list.pop(m_id - 1)
        print('删除成功！！！')

    manage_sort()
#管理员信息管理函数
def  manage_sort():
    print('*' * 32)
    print('*' * 9, end='')
    print('管理员信息管理', end='')
    print('*' * 9)
    print('*' * 32)
    print(' ',end=' ')
    print('{:<14}{:<8}'.format('1.信息注册','2.信息删除'))
    print(' '*12,end='')
    print('{0:12}'.format('3.退出'))
    print('*' * 32)
    k=input('请输入对应的选择：')
    if  k == '1':
        m_register()
        print('正在为您跳转客户管理界面......')
        user_login()
    elif k == '2':
        del_m()
        print('正在为您跳转客户管理界面......')
        user_login()
    elif  k=='3':
        loginOut()
        print('*' * 12, '再见', '*' * 12)
    else:
        print('输入无效！请重新输入！')
        manage_sort()
#获取用户姓名
def get_Uname():
    print('当前客户：')
    for i,user_dict in enumerate(user_list):
        print('{0:<3}{1:<12}'.format(i+1,user_dict['name']))
#查询余额函数
def  look_user():
    print('*' * 32)
    print('*' * 6, end='')
    print('欢迎使用余额查询功能', end='')
    print('*' *6)
    print('*' * 32)
    # print('用户信息表')
    # show_user()
    get_Uname()
    print()
    key=input('请输入您要查询的客户姓名：')
    for i,dict in enumerate(user_list):

        if user_list[i]['name']== key:
            print('{}先生/女士，您的账户余额为：'.format(key),end=" ")
            print(user_list[i]['currency'])
    user_login()
#存钱函数
def income():
    print('当前客户：')
    print(' ',end='')
    print('-' * 25)
    print('|{0:<3}|{1:<12}|{2:<8}|'.format('id', 'user_name', 'account'))
    print('',end=' ')
    print('-'*25)
    for i, user_dict in enumerate(user_list):
        print('|{0:<3}|{1:<12}|{2:<8}|'.format(i + 1, user_dict['name'],user_dict['account']))
    print(' ', end='')
    print('-' * 25)
    key=input('请输入您的存入账户：')
    number=input('请输入金额：')
    for i,luo in enumerate(user_list):
        if user_list[i]['account']==key :
            sum=user_list[i]['currency']+int(number)
            print("存入成功！！！")
            print('您的可用余额为：',end='  ')
            print(sum)
    user_login()
#取钱函数
def outcome():
    print('当前客户：')
    print(' ', end='')
    print('-' * 25)
    print('|{0:<3}|{1:<12}|{2:<8}|'.format('id', 'user_name', 'account'))
    print('', end=' ')
    print('-' * 25)
    for i, user_dict in enumerate(user_list):
        print('|{0:<3}|{1:<12}|{2:<8}|'.format(i + 1, user_dict['name'], user_dict['account']))
    print(' ', end='')
    print('-' * 25)
    key=input('请输入取钱账户：')
    number= input('请输入取钱金额：')
    for i,luo in enumerate(user_list):
        if user_list[i]['account']==key :
            sum=user_list[i]['currency']-int(number)
            print("取钱成功！！！")
            print('您的可用余额为：',end='  ')
            print(sum)
    user_login()
#  测试取钱
# outcome()
# 测试存入
# income()
# 测试余额查询功能
# look_user()
#测试管理员信息管理函数
# manage_sort()
#   登录函数
#管理员登录函数
def  login():
    dan=input('请输入账户：')
    for i,dic in enumerate(manager_list):
        if  manager_list[i]['name']==dan:
            password = input("请输入密码：")
            for n,dis in enumerate(manager_list):
                if manager_list[n]['password']==password:
                    print('登录成功！！！')
# 测试登录函数
# login()
#  退出函数
def loginOut():
    pass
#  用户界面函数
'''
   此函数只为了实现客户用于  取钱，存钱，查询余额等功能
'''
def user_login():
    print('*' * 32)
    print('*' * 6, end='')
    print('欢迎使用银行管理系统', end='')
    print('*' * 6)
    print('*' * 32)
    print('{0:<12}{1:<8}'.format('1.查询余额','2.取钱'))
    print('{0:<14}{1:<8}'.format('3.存钱','4.管理员信息管理'))

    print('5. 退出系统')
    print('*' * 32)
    key1=input('请输入对应的选择：')
    if key1=='1':
        look_user()
    elif key1=='2':
        outcome()
    elif  key1=='3':
        income()
    elif  key1=='4':
        manage_sort()
    elif  key1=='5':
        loginOut()
        print('*' * 12, '再见', '*' * 12)




#  测试用户管理函数
# user_login()
def loginIn():
    print('*' * 32)
    print('*' * 6, end='')
    print('欢迎使用银行管理系统', end='')
    print('*' * 6)
    print('*' * 32)
    print('{:<14}{:8}'.format('1.管理员登录','2.管理员注册'))
    print()
    print(' '*11,end='')
    print('3.退出系统')
    print('*' * 32)
    k=input('请输入对应的选择：')
    if  k=='1':
        login()
        user_login()
    elif k=='2':
        m_register()
    elif k=='3':
        loginOut()
        print('*' * 12, '再见', '*' * 12)

    else :
        print('您的输入有误！')
#测试登录
loginIn()